﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    internal class Code
    {

        private static string A([In] string obj0, [In] string obj1, [In] bool obj2, [In] int obj3, [In] string obj4)
        {
            int[] numArray1 = new int[64]
            {
        16843776,
        0,
        65536,
        16843780,
        16842756,
        66564,
        4,
        65536,
        1024,
        16843776,
        16843780,
        1024,
        16778244,
        16842756,
        16777216,
        4,
        1028,
        16778240,
        16778240,
        66560,
        66560,
        16842752,
        16842752,
        16778244,
        65540,
        16777220,
        16777220,
        65540,
        0,
        1028,
        66564,
        16777216,
        65536,
        16843780,
        4,
        16842752,
        16843776,
        16777216,
        16777216,
        1024,
        16842756,
        65536,
        66560,
        16777220,
        1024,
        4,
        16778244,
        66564,
        16843780,
        65540,
        16842752,
        16778244,
        16777220,
        1028,
        66564,
        16843776,
        1028,
        16778240,
        16778240,
        0,
        65540,
        66560,
        0,
        16842756
            };
            int[] numArray2 = new int[64]
            {
        -2146402272,
        -2147450880,
        32768,
        1081376,
        1048576,
        32,
        -2146435040,
        -2147450848,
        -2147483616,
        -2146402272,
        -2146402304,
        -134217728,
        -2147450880,
        1048576,
        32,
        -2146435040,
        1081344,
        1048608,
        -2147450848,
        0,
        -134217728,
        32768,
        1081376,
        -2146435072,
        1048608,
        -2147483616,
        0,
        1081344,
        32800,
        -2146402304,
        -2146435072,
        32800,
        0,
        1081376,
        -2146435040,
        1048576,
        -2147450848,
        -2146435072,
        -2146402304,
        32768,
        -2146435072,
        -2147450880,
        32,
        -2146402272,
        1081376,
        32,
        32768,
        -134217728,
        32800,
        -2146402304,
        1048576,
        -2147483616,
        1048608,
        -2147450848,
        -2147483616,
        1048608,
        1081344,
        0,
        -2147450880,
        32800,
        -134217728,
        -2146435040,
        -2146402272,
        1081344
            };
            int[] numArray3 = new int[64]
            {
        520,
        134349312,
        0,
        134348808,
        134218240,
        0,
        131592,
        134218240,
        131080,
        134217736,
        134217736,
        131072,
        134349320,
        131080,
        134348800,
        520,
        134217728,
        8,
        134349312,
        512,
        131584,
        134348800,
        134348808,
        131592,
        134218248,
        131584,
        131072,
        134218248,
        8,
        134349320,
        512,
        134217728,
        134349312,
        134217728,
        131080,
        520,
        131072,
        134349312,
        134218240,
        0,
        512,
        131080,
        134349320,
        134218240,
        134217736,
        512,
        0,
        134348808,
        134218248,
        131072,
        134217728,
        134349320,
        8,
        131592,
        131584,
        134217736,
        134348800,
        134218248,
        520,
        134348800,
        131592,
        8,
        134348808,
        131584
            };
            int[] numArray4 = new int[64]
            {
        8396801,
        8321,
        8321,
        128,
        8396928,
        8388737,
        8388609,
        8193,
        0,
        8396800,
        8396800,
        8396929,
        129,
        0,
        8388736,
        8388609,
        1,
        8192,
        8388608,
        8396801,
        128,
        8388608,
        8193,
        8320,
        8388737,
        1,
        8320,
        8388736,
        8192,
        8396928,
        8396929,
        129,
        8388736,
        8388609,
        8396800,
        8396929,
        129,
        0,
        0,
        8396800,
        8320,
        8388736,
        8388737,
        1,
        8396801,
        8321,
        8321,
        128,
        8396929,
        129,
        1,
        8192,
        8388609,
        8193,
        8396928,
        8388737,
        8193,
        8320,
        8388608,
        8396801,
        128,
        8388608,
        8192,
        8396928
            };
            int[] numArray5 = new int[64]
            {
        256,
        34078976,
        34078720,
        1107296512,
        524288,
        256,
        1073741824,
        34078720,
        1074266368,
        524288,
        33554688,
        1074266368,
        1107296512,
        1107820544,
        524544,
        1073741824,
        33554432,
        1074266112,
        1074266112,
        0,
        1073742080,
        1107820800,
        1107820800,
        33554688,
        1107820544,
        1073742080,
        0,
        1107296256,
        34078976,
        33554432,
        1107296256,
        524544,
        524288,
        1107296512,
        256,
        33554432,
        1073741824,
        34078720,
        1107296512,
        1074266368,
        33554688,
        1073741824,
        1107820544,
        34078976,
        1074266368,
        256,
        33554432,
        1107820544,
        1107820800,
        524544,
        1107296256,
        1107820800,
        34078720,
        0,
        1074266112,
        1107296256,
        524544,
        33554688,
        1073742080,
        524288,
        0,
        1074266112,
        34078976,
        1073742080
            };
            int[] numArray6 = new int[64]
            {
        536870928,
        541065216,
        16384,
        541081616,
        541065216,
        16,
        541081616,
        4194304,
        536887296,
        4210704,
        4194304,
        536870928,
        4194320,
        536887296,
        536870912,
        16400,
        0,
        4194320,
        536887312,
        16384,
        4210688,
        536887312,
        16,
        541065232,
        541065232,
        0,
        4210704,
        541081600,
        16400,
        4210688,
        541081600,
        536870912,
        536887296,
        16,
        541065232,
        4210688,
        541081616,
        4194304,
        16400,
        536870928,
        4194304,
        536887296,
        536870912,
        16400,
        536870928,
        541081616,
        4210688,
        541065216,
        4210704,
        541081600,
        0,
        541065232,
        16,
        16384,
        541065216,
        4210704,
        16384,
        4194320,
        536887312,
        0,
        541081600,
        536870912,
        4194320,
        536887312
            };
            int[] numArray7 = new int[64]
            {
        2097152,
        69206018,
        67110914,
        0,
        2048,
        67110914,
        2099202,
        69208064,
        69208066,
        2097152,
        0,
        67108866,
        2,
        67108864,
        69206018,
        2050,
        67110912,
        2099202,
        2097154,
        67110912,
        67108866,
        69206016,
        69208064,
        2097154,
        69206016,
        2048,
        2050,
        69208066,
        2099200,
        2,
        67108864,
        2099200,
        67108864,
        2099200,
        2097152,
        67110914,
        67110914,
        69206018,
        69206018,
        2,
        2097154,
        67108864,
        67110912,
        2097152,
        69208064,
        2050,
        2099202,
        69208064,
        2050,
        67108866,
        69208066,
        69206016,
        2099200,
        0,
        2,
        69208066,
        0,
        2099202,
        69206016,
        2048,
        67108866,
        67110912,
        2048,
        2097154
            };
            int[] numArray8 = new int[64]
            {
        268439616,
        4096,
        262144,
        268701760,
        268435456,
        268439616,
        64,
        268435456,
        262208,
        268697600,
        268701760,
        266240,
        268701696,
        266304,
        4096,
        64,
        268697600,
        268435520,
        268439552,
        4160,
        266240,
        262208,
        268697664,
        268701696,
        4160,
        0,
        0,
        268697664,
        268435520,
        268439552,
        266304,
        262144,
        266304,
        262144,
        268701696,
        4096,
        64,
        268697664,
        4096,
        266304,
        268439552,
        64,
        268435520,
        268697600,
        268697664,
        268435456,
        262144,
        268439616,
        0,
        268701760,
        262208,
        268435520,
        268697600,
        268439552,
        268439616,
        0,
        268701760,
        266240,
        266240,
        4160,
        4160,
        262208,
        268435456,
        268701696
            };
            int[] numArray9 = Code.A(obj0);
            int num1_1 = 0;
            int num2 = 0;
            int num3 = 0;
            int num4 = 0;
            int num5 = 0;
            int length1 = obj1.Length;
            int num6 = 0;
            int num7 = numArray9.Length == 32 ? 3 : 9;
            int[] numArray10;
            if (num7 == 3)
            {
                int[] numArray;
                if (!obj2)
                    numArray = new int[3] { 30, -2, -2 };
                else
                    numArray = new int[3] { 0, 32, 2 };
                numArray10 = numArray;
            }
            else
            {
                int[] numArray;
                if (!obj2)
                    numArray = new int[9]
                    {
            94,
            62,
            -2,
            32,
            64,
            2,
            30,
            -2,
            -2
                    };
                else
                    numArray = new int[9]
                    {
            0,
            32,
            2,
            62,
            30,
            -2,
            64,
            96,
            2
                    };
                numArray10 = numArray;
            }
            obj1 += Unk.A();
            StringBuilder stringBuilder1 = new StringBuilder();
            StringBuilder stringBuilder2 = new StringBuilder();
            if (obj3 == 1)
            {
                int length2 = obj4.Length;
                char[] charArray = obj4.ToCharArray();
                int[] numArray13 = new int[length2 + 8];
                for (int index = 0; index < length2; ++index)
                    numArray13[index] = Convert.ToInt32(charArray[index]);
                for (int index = length2; index < length2 + 8; ++index)
                    numArray13[index] = 0;
                int[] numArray11 = numArray13;
                int index1 = num1_1;
                int num1_2 = index1 + 1;
                int num1 = numArray11[index1] << 24;
                int[] numArray12 = numArray13;
                int index2 = num1_2;
                int num1_3 = index2 + 1;
                int num8 = numArray12[index2] << 16;
                int num9 = num1 | num8;
                int[] numArray14 = numArray13;
                int index3 = num1_3;
                int num1_4 = index3 + 1;
                int num10 = numArray14[index3] << 8;
                int num11 = num9 | num10;
                int[] numArray15 = numArray13;
                int index4 = num1_4;
                int num1_5 = index4 + 1;
                int num12 = numArray15[index4];
                num2 = num11 | num12;
                int[] numArray16 = numArray13;
                int index5 = num1_5;
                int num1_6 = index5 + 1;
                int num13 = numArray16[index5] << 24;
                int[] numArray17 = numArray13;
                int index6 = num1_6;
                int num1_7 = index6 + 1;
                int num14 = numArray17[index6] << 16;
                int num15 = num13 | num14;
                int[] numArray18 = numArray13;
                int index7 = num1_7;
                int num1_8 = index7 + 1;
                int num16 = numArray18[index7] << 8;
                int num17 = num15 | num16;
                int[] numArray19 = numArray13;
                int index8 = num1_8;
                int num1_9 = index8 + 1;
                int num18 = numArray19[index8];
                num4 = num17 | num18;
                num1_1 = 0;
            }
            while (num1_1 < length1)
            {
                int[] numArray22 = new int[length1 + 8];
                char[] charArray = obj1.ToCharArray();
                for (int index = 0; index < length1 + 8; ++index)
                    numArray22[index] = Convert.ToInt32(charArray[index]);
                int num28;
                int num29;
                if (obj2)
                {
                    int[] numArray20 = numArray22;
                    int index9 = num1_1;
                    int num1_10 = index9 + 1;
                    int num19 = numArray20[index9] << 16;
                    int[] numArray21 = numArray22;
                    int index10 = num1_10;
                    int num1_11 = index10 + 1;
                    int num20 = numArray21[index10];
                    num28 = num19 | num20;
                    int[] numArray23 = numArray22;
                    int index11 = num1_11;
                    int num1_12 = index11 + 1;
                    int num21 = numArray23[index11] << 16;
                    int[] numArray24 = numArray22;
                    int index12 = num1_12;
                    num1_1 = index12 + 1;
                    int num22 = numArray24[index12];
                    num29 = num21 | num22;
                }
                else
                {
                    int[] numArray25 = numArray22;
                    int index13 = num1_1;
                    int num1_13 = index13 + 1;
                    int num23 = numArray25[index13] << 24;
                    int[] numArray26 = numArray22;
                    int index14 = num1_13;
                    int num1_14 = index14 + 1;
                    int num24 = numArray26[index14] << 16;
                    int num25 = num23 | num24;
                    int[] numArray27 = numArray22;
                    int index15 = num1_14;
                    int num1_15 = index15 + 1;
                    int num26 = numArray27[index15] << 8;
                    int num27 = num25 | num26;
                    int[] numArray28 = numArray22;
                    int index16 = num1_15;
                    int num1_16 = index16 + 1;
                    int num30 = numArray28[index16];
                    num28 = num27 | num30;
                    int[] numArray29 = numArray22;
                    int index17 = num1_16;
                    int num1_17 = index17 + 1;
                    int num31 = numArray29[index17] << 24;
                    int[] numArray30 = numArray22;
                    int index18 = num1_17;
                    int num1_18 = index18 + 1;
                    int num32 = numArray30[index18] << 16;
                    int num33 = num31 | num32;
                    int[] numArray31 = numArray22;
                    int index19 = num1_18;
                    int num1_19 = index19 + 1;
                    int num34 = numArray31[index19] << 8;
                    int num35 = num33 | num34;
                    int[] numArray32 = numArray22;
                    int index20 = num1_19;
                    num1_1 = index20 + 1;
                    int num36 = numArray32[index20];
                    num29 = num35 | num36;
                }
                if (obj3 == 1)
                {
                    if (obj2)
                    {
                        num28 ^= num2;
                        num29 ^= num4;
                    }
                    else
                    {
                        num3 = num2;
                        num5 = num4;
                        num2 = num28;
                        num4 = num29;
                    }
                }
                int num56 = (Code.A(num28, 4) ^ num29) & 252645135;
                int num57 = num29 ^ num56;
                int num58 = num28 ^ num56 << 4;
                int num59 = (Code.A(num58, 16) ^ num57) & (int)ushort.MaxValue;
                int num60 = num57 ^ num59;
                int num61 = num58 ^ num59 << 16;
                int num62 = (Code.A(num60, 2) ^ num61) & 858993459;
                int num63 = num61 ^ num62;
                int num64 = num60 ^ num62 << 2;
                int num65 = (Code.A(num64, 8) ^ num63) & 16711935;
                int num66 = num63 ^ num65;
                int num67 = num64 ^ num65 << 8;
                int num68 = (Code.A(num66, 1) ^ num67) & 1431655765;
                int num69 = num67 ^ num68;
                int num70 = num66 ^ num68 << 1;
                int num71 = num70 << 1 | Code.A(num70, 31);
                int num72 = num69 << 1 | Code.A(num69, 31);
                for (int index21 = 0; index21 < num7; index21 += 3)
                {
                    int num73 = numArray10[index21 + 1];
                    int num74 = numArray10[index21 + 2];
                    for (int index22 = numArray10[index21]; index22 != num73; index22 += num74)
                    {
                        int num75 = num72 ^ numArray9[index22];
                        int num76 = (Code.A(num72, 4) | num72 << 28) ^ numArray9[index22 + 1];
                        int num77 = num71;
                        num71 = num72;
                        num72 = num77 ^ (numArray2[Code.A(num75, 24) & 63] | numArray4[Code.A(num75, 16) & 63] | numArray6[Code.A(num75, 8) & 63] | numArray8[num75 & 63] | numArray1[Code.A(num76, 24) & 63] | numArray3[Code.A(num76, 16) & 63] | numArray5[Code.A(num76, 8) & 63] | numArray7[num76 & 63]);
                    }
                    int num78 = num71;
                    num71 = num72;
                    num72 = num78;
                }
                int num79 = Code.A(num71, 1) | num71 << 31;
                int num80 = Code.A(num72, 1) | num72 << 31;
                int num81 = (Code.A(num79, 1) ^ num80) & 1431655765;
                int num82 = num80 ^ num81;
                int num83 = num79 ^ num81 << 1;
                int num84 = (Code.A(num82, 8) ^ num83) & 16711935;
                int num85 = num83 ^ num84;
                int num86 = num82 ^ num84 << 8;
                int num87 = (Code.A(num86, 2) ^ num85) & 858993459;
                int num88 = num85 ^ num87;
                int num89 = num86 ^ num87 << 2;
                int num90 = (Code.A(num88, 16) ^ num89) & (int)ushort.MaxValue;
                int num91 = num89 ^ num90;
                int num92 = num88 ^ num90 << 16;
                int num93 = (Code.A(num92, 4) ^ num91) & 252645135;
                int num94 = num91 ^ num93;
                int num95 = num92 ^ num93 << 4;
                if (obj3 == 1)
                {
                    if (obj2)
                    {
                        num2 = num95;
                        num4 = num94;
                    }
                    else
                    {
                        num95 ^= num3;
                        num94 ^= num5;
                    }
                }
                if (obj2)
                {
                    stringBuilder2.Append(Convert.ToChar(Code.A(num95, 24)));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num95, 16) & (int)byte.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num95, 8) & (int)byte.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(num95 & (int)byte.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num94, 24)));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num94, 16) & (int)byte.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num94, 8) & (int)byte.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(num94 & (int)byte.MaxValue));
                }
                else
                {
                    stringBuilder2.Append(Convert.ToChar(Code.A(num95, 16) & (int)ushort.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(num95 & (int)ushort.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(Code.A(num94, 16) & (int)ushort.MaxValue));
                    stringBuilder2.Append(Convert.ToChar(num94 & (int)ushort.MaxValue));
                }
                if (obj2)
                    num6 += 16;
                else
                    num6 += 8;
                if (num6 == 512)
                {
                    stringBuilder1.Append(stringBuilder2.ToString());
                    stringBuilder2.Remove(0, stringBuilder2.Length);
                    num6 = 0;
                }
            }
            return stringBuilder1.ToString() + stringBuilder2.ToString();
        }

        private static int[] A([In] string obj0)
        {
            int[] numArray1 = new int[16]
            {
        0,
        4,
        536870912,
        536870916,
        65536,
        65540,
        536936448,
        536936452,
        512,
        516,
        536871424,
        536871428,
        66048,
        66052,
        536936960,
        536936964
            };
            int[] numArray2 = new int[16]
            {
        0,
        1,
        1048576,
        1048577,
        67108864,
        67108865,
        68157440,
        68157441,
        256,
        257,
        1048832,
        1048833,
        67109120,
        67109121,
        68157696,
        68157697
            };
            int[] numArray3 = new int[16]
            {
        0,
        8,
        2048,
        2056,
        16777216,
        16777224,
        16779264,
        16779272,
        0,
        8,
        2048,
        2056,
        16777216,
        16777224,
        16779264,
        16779272
            };
            int[] numArray4 = new int[16]
            {
        0,
        2097152,
        134217728,
        136314880,
        8192,
        2105344,
        134225920,
        136323072,
        131072,
        2228224,
        134348800,
        136445952,
        139264,
        2236416,
        134356992,
        136454144
            };
            int[] numArray5 = new int[16]
            {
        0,
        262144,
        16,
        262160,
        0,
        262144,
        16,
        262160,
        4096,
        266240,
        4112,
        266256,
        4096,
        266240,
        4112,
        266256
            };
            int[] numArray6 = new int[16]
            {
        0,
        1024,
        32,
        1056,
        0,
        1024,
        32,
        1056,
        33554432,
        33555456,
        33554464,
        33555488,
        33554432,
        33555456,
        33554464,
        33555488
            };
            int[] numArray7 = new int[16]
            {
        0,
        268435456,
        524288,
        268959744,
        2,
        268435458,
        524290,
        268959746,
        0,
        268435456,
        524288,
        268959744,
        2,
        268435458,
        524290,
        268959746
            };
            int[] numArray8 = new int[16]
            {
        0,
        65536,
        2048,
        67584,
        536870912,
        536936448,
        536872960,
        536938496,
        131072,
        196608,
        133120,
        198656,
        537001984,
        537067520,
        537004032,
        537069568
            };
            int[] numArray9 = new int[16]
            {
        0,
        262144,
        0,
        262144,
        2,
        262146,
        2,
        262146,
        33554432,
        33816576,
        33554432,
        33816576,
        33554434,
        33816578,
        33554434,
        33816578
            };
            int[] numArray10 = new int[16]
            {
        0,
        268435456,
        8,
        268435464,
        0,
        268435456,
        8,
        268435464,
        1024,
        268436480,
        1032,
        268436488,
        1024,
        268436480,
        1032,
        268436488
            };
            int[] numArray11 = new int[16]
            {
        0,
        32,
        0,
        32,
        1048576,
        1048608,
        1048576,
        1048608,
        8192,
        8224,
        8192,
        8224,
        1056768,
        1056800,
        1056768,
        1056800
            };
            int[] numArray12 = new int[16]
            {
        0,
        16777216,
        512,
        16777728,
        2097152,
        18874368,
        2097664,
        18874880,
        67108864,
        83886080,
        67109376,
        83886592,
        69206016,
        85983232,
        69206528,
        85983744
            };
            int[] numArray13 = new int[16]
            {
        0,
        4096,
        134217728,
        134221824,
        524288,
        528384,
        134742016,
        134746112,
        16,
        4112,
        134217744,
        134221840,
        524304,
        528400,
        134742032,
        134746128
            };
            int[] numArray14 = new int[16]
            {
        0,
        4,
        256,
        260,
        0,
        4,
        256,
        260,
        1,
        5,
        257,
        261,
        1,
        5,
        257,
        261
            };
            int num1 = obj0.Length >= 24 ? 3 : 1;
            int[] numArray15 = new int[32 * num1];
            int[] numArray16 = new int[16]
            {
        0,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0,
        1,
        1,
        1,
        1,
        1,
        1,
        0
            };
            int num2_1 = 0;
            int num3_1 = 0;
            char[] charArray = obj0.ToCharArray();
            int length1 = obj0.Length;
            int length2 = length1 + num1 * 8;
            int[] numArray17 = new int[length2];
            for (int index = 0; index < length1; ++index)
                numArray17[index] = Convert.ToInt32(charArray[index]);
            for (int index = length1; index < length2; ++index)
                numArray17[index] = 0;
            for (int index1 = 0; index1 < num1; ++index1)
            {
                int[] numArray18 = numArray17;
                int index2 = num2_1;
                int num2_2 = index2 + 1;
                int num2 = numArray18[index2] << 24;
                int[] numArray19 = numArray17;
                int index3 = num2_2;
                int num2_3 = index3 + 1;
                int num3 = numArray19[index3] << 16;
                int num4 = num2 | num3;
                int[] numArray20 = numArray17;
                int index4 = num2_3;
                int num2_4 = index4 + 1;
                int num5 = numArray20[index4] << 8;
                int num6 = num4 | num5;
                int[] numArray21 = numArray17;
                int index5 = num2_4;
                int num2_5 = index5 + 1;
                int num7 = numArray21[index5];
                int num14 = num6 | num7;
                int[] numArray22 = numArray17;
                int index6 = num2_5;
                int num2_6 = index6 + 1;
                int num8 = numArray22[index6] << 24;
                int[] numArray23 = numArray17;
                int index7 = num2_6;
                int num2_7 = index7 + 1;
                int num9 = numArray23[index7] << 16;
                int num10 = num8 | num9;
                int[] numArray24 = numArray17;
                int index8 = num2_7;
                int num2_8 = index8 + 1;
                int num11 = numArray24[index8] << 8;
                int num12 = num10 | num11;
                int[] numArray25 = numArray17;
                int index9 = num2_8;
                num2_1 = index9 + 1;
                int num13 = numArray25[index9];
                int num24 = num12 | num13;
                int num25 = (Code.A(num14, 4) ^ num24) & 252645135;
                int num26 = num24 ^ num25;
                int num27 = num14 ^ num25 << 4;
                int num28 = (Code.A(num26, -16) ^ num27) & (int)ushort.MaxValue;
                int num29 = num27 ^ num28;
                int num30 = num26 ^ num28 << 16;
                int num31 = (Code.A(num29, 2) ^ num30) & 858993459;
                int num32 = num30 ^ num31;
                int num33 = num29 ^ num31 << 2;
                int num34 = (Code.A(num32, -16) ^ num33) & (int)ushort.MaxValue;
                int num35 = num33 ^ num34;
                int num36 = num32 ^ num34 << 16;
                int num37 = (Code.A(num35, 1) ^ num36) & 1431655765;
                int num38 = num36 ^ num37;
                int num39 = num35 ^ num37 << 1;
                int num40 = (Code.A(num38, 8) ^ num39) & 16711935;
                int num41 = num39 ^ num40;
                int num42 = num38 ^ num40 << 8;
                int num43 = (Code.A(num41, 1) ^ num42) & 1431655765;
                int num44 = num42 ^ num43;
                int num45 = (num41 ^ num43 << 1) << 8 | Code.A(num44, 20) & 240;
                int num46_1 = num44 << 24 | num44 << 8 & 16711680 | Code.A(num44, 8) & 65280 | Code.A(num44, 24) & 240;
                int num47_1 = num45;
                int length3 = numArray16.Length;
                for (int index10 = 0; index10 < length3; ++index10)
                {
                    int num46_2;
                    int num47_2;
                    if (numArray16[index10] == 1)
                    {
                        num46_2 = num46_1 << 2 | Code.A(num46_1, 26);
                        num47_2 = num47_1 << 2 | Code.A(num47_1, 26);
                    }
                    else
                    {
                        num46_2 = num46_1 << 1 | Code.A(num46_1, 27);
                        num47_2 = num47_1 << 1 | Code.A(num47_1, 27);
                    }
                    num46_1 = num46_2 & -15;
                    num47_1 = num47_2 & -15;
                    int num50 = numArray1[Code.A(num46_1, 28)] | numArray2[Code.A(num46_1, 24) & 15] | numArray3[Code.A(num46_1, 20) & 15] | numArray4[Code.A(num46_1, 16) & 15] | numArray5[Code.A(num46_1, 12) & 15] | numArray6[Code.A(num46_1, 8) & 15] | numArray7[Code.A(num46_1, 4) & 15];
                    int num51 = numArray8[Code.A(num47_1, 28)] | numArray9[Code.A(num47_1, 24) & 15] | numArray10[Code.A(num47_1, 20) & 15] | numArray11[Code.A(num47_1, 16) & 15] | numArray12[Code.A(num47_1, 12) & 15] | numArray13[Code.A(num47_1, 8) & 15] | numArray14[Code.A(num47_1, 4) & 15];
                    int num52 = (Code.A(num51, 16) ^ num50) & (int)ushort.MaxValue;
                    int[] numArray26 = numArray15;
                    int index11 = num3_1;
                    int num3_2 = index11 + 1;
                    int num15 = num50 ^ num52;
                    numArray26[index11] = num15;
                    int[] numArray27 = numArray15;
                    int index12 = num3_2;
                    num3_1 = index12 + 1;
                    int num16 = num51 ^ num52 << 16;
                    numArray27[index12] = num16;
                }
            }
            return numArray15;
        }


        private static int A([In] int obj0, [In] int obj1)
        {
            string empty = string.Empty;
            string str = Convert.ToString(obj0, 2);
            if (obj0 >= 0)
            {
                str = Convert.ToString(obj0, 2);
                int num = 32 - str.Length;
                for (int index = 0; index < num; ++index)
                    str = Unk.a() + str;
            }
            obj1 = obj1 < 0 ? obj1 + 32 : obj1;
            for (int index = 0; index < obj1; ++index)
                str = Unk.a() + str.Substring(0, 31);
            return Convert.ToInt32(str, 2);
        }

        private static string a([In] string obj0)
        {
            StringBuilder stringBuilder = new StringBuilder();
            char[] chArray = new char[16]
            {
        '0',
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        'A',
        'B',
        'C',
        'D',
        'E',
        'F'
            };
            int length = obj0.Length;
            char[] charArray = obj0.ToCharArray();
            for (int index = 0; index < length; ++index)
            {
                stringBuilder.Append(chArray[(int)charArray[index] >> 4]);
                stringBuilder.Append(chArray[(int)charArray[index] & 15]);
            }
            return stringBuilder.ToString();
        }



        private static string B([In] string obj0)
        {
            StringBuilder stringBuilder = new StringBuilder();
            int length = obj0.Length;
            for (int startIndex = 0; startIndex < length; startIndex += 2)
            {
                char ch = Convert.ToChar(Convert.ToInt16(Unk.B() + obj0.Substring(startIndex, 2), 16));
                stringBuilder.Append(ch);
            }
            return stringBuilder.ToString();
        }

        public static string A([In] string obj0, [In] string obj1)
        {
            return Code.a(Code.A(obj0, obj1, true, 0, Unk.b()));
        }

        public static string b([In] string obj0)
        {
            return Code.a(Code.A(Unk.C() + DateTime.Now.ToString(Unk.c()), obj0, true, 0, Unk.b()));
        }

        public static string a([In] string obj0, [In] string obj1)
        {
            return Code.A(obj0, Code.B(obj1), false, 0, Unk.b());
        }



    }
}
